<?php 


/**
* 数据库操作类
*/
class Model
	
{	public $db;//pdo数据库链接对象,pdo装在这里面
	public $table;  //表名
	public $error; //错误信息
	public $errno; //错误代码
	public $where; 
	//$table=null在这里接到一个表名
	function __construct($table=null)    

	{	//如果传我们可以走多这一步，把表名传进来
		if($table){
			$this->table=$table;   

		}

		try{
				
			$this->db = new PDO("mysql:host=".C('db_host').";dbname=".C('db_dbname').";charset=utf8",C('db_user'),C('db_password'));
			
		}catch(PDOException  $e ){
			echo "Error: ".$e;exit;//如果$db里面有系统的错误信息我们就用$e把它接收起来。
					
		}


			
	}
	//写一个add的增加的功能
	public function add($data){
		//d打印一下$data传进来的数据
	 	// var_dump($data);
	 	//用逗号把数组$data的值链接起来
	 	$values=implode("','",$data);
	 	$keys=implode(',', array_keys($data));
	 	//把表名打印出来（添加到哪里的表名）
	 	// var_dump($this->table); 
	 	//一条添加的语句
	 	$sql="insert into ".$this->table." (".$keys.") values('".$values."')" ;
	 	//把她丢给执行的语句，就是下面封装的exce方法;
	 	return $this->exec($sql);
	}
	
	//封装一条执行的方法（功能）
	public function exec($sql){
			$res=$this->db->exec($sql);
			if(!$res){
			$this->error=$this->db->errorInfo()[2];
			$this->errno=$this->db->errorCode();
			}
			return $res;
	}
	public function query($sql)
	{
		$res =$this->db->query($sql);

		if(!$res){
			$this->error=$this->db->errorInfo()[2];
			$this->errno=$this->db->errorCode();
			return false;
		}

		return $res->fetchAll(PDO::FETCH_ASSOC);
	}




	public function getError()
	{
		return "错误信息:".$this->error."错误代码：".$this->errno;
	}


	public function where($where)
	{
		$this->where= " where ".$where;
		return $this;
		
	}


	public function find(){
		$sql="select * from ".$this->table.$this->where;
		// var_dump($sql);exit;
		return $this->query($sql);

	}

	public function save($data){
		var_dump($data);
		$sql="update" .$this->table."set name='宝子'".$this->where;
	}

		// var_dump($sql);

}

















 ?>